import java.util.*;

public class test1 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("输入参数1");
//        String str1 = input.next();
        System.out.println("输入参数2");
//        String str2 = input.next();
        String str1="演员-李连杰|周杰伦;歌手-周杰|周杰伦;歌曲-青花瓷|双截棍;电影-青蜂侠|英雄";
        String str2="青花瓷是周杰伦演唱的一首歌曲，由方文山作词。";
        String str3 = dispose(str1, str2);
        System.out.println("内容为："+str3);
    }

    public  static String dispose(String str1, String str2) {
        //先拆解  分割三个
        String[] split = str1.split("\\;");
        List<Map> list = new ArrayList<>();//所有数据
//key -value 的list集合
        for (String s : split) {
            Map<String, List<String>> map  = new HashMap<>();
            String[] sp2 = s.split("\\-");//key 演员 sp2[0]是key
            String[] sp3 = sp2[1].split("\\|");//value 描述信息
            List<String> mes = new ArrayList<>();
            Collections.addAll(mes,sp3);//信息添加到集合
            map.put(sp2[0],mes);
            list.add(map);
        }
        String str3 =str2.toString();
        StringBuffer str4=new StringBuffer(str3);//结果
        for (Map<String,List<String>> map : list) {
            for (String key : map.keySet()) {
                //判断
                List liststr = map.get(key);
                for (Object p : liststr) {
                    String pp = String.valueOf(p);//模板是死的 只有两个值  值1
                    String p2 = String.valueOf(liststr.get(1));//第二个值
                    if(!p2.contains(pp) || p2.equals(p) ){
                        if(str3.contains(pp)){
                            int index = str4.indexOf(pp);//关键字位置索引位置
                            char c = str4.charAt(index);
                            if(c!=' '){//周杰伦出现两次 避免重复添加空格------没有起效果 "" 与''不同
                                str4.insert(index," ");
                            }
                            if(p2.equals(pp)){//拼接描述 和/  空格
                                str4.insert(index+p2.length()+1,"/"+key+" ");
                            }else{
                                str4.insert(index+pp.length()+1,"/"+key+"");
                            }

                        }
                    }

                }
            }
        }
        return str4.toString();
    }
}
